home *** CD-ROM | disk | FTP | other *** search
/ Aminet 48 / Aminet 48 (2002)(GTI - Schatztruhe)[!][Apr 2002].iso / Aminet / text / edit / vim60rt.lha / Vim / vim60 / doc / usr_05.txt < prev    next >
Encoding:
Text File  |  2001-09-26  |  21.3 KB  |  615 lines

  1. *usr_05.txt*    For Vim version 6.0.  Last change: 2001 Sep 03
  2.  
  3.              VIM USER MANUAL - by Bram Moolenaar
  4.  
  5.                   Set your settings
  6.  
  7.  
  8. Vim can be tuned to work like you want it to.  This chapter shows you how to
  9. make Vim start with options set to different values.  Add plugins to extend
  10. Vims capabilities.  Or define your own macros.
  11.  
  12. |05.1|    The vimrc file
  13. |05.2|    The example vimrc file explained
  14. |05.3|    Simple mappings
  15. |05.4|    Adding a plugin
  16. |05.5|    Adding a help file
  17. |05.6|    The option window
  18. |05.7|    Often used options
  19.  
  20.      Next chapter: |usr_06.txt|  Using syntax highlighting
  21.  Previous chapter: |usr_04.txt|  Making small changes
  22. Table of contents: |usr_toc.txt|
  23.  
  24. ==============================================================================
  25. *05.1*    The vimrc file
  26.  
  27. You probably got tired of typing commands that you use very often.  To start
  28. with all your favorite option settings and mappings, you write them in what is
  29. called the vimrc file.  Vim reads this file when it starts up.
  30.  
  31. If you have trouble finding your vimrc file, use this command: >
  32.  
  33.     :scriptnames
  34.  
  35. One of the first files in the list should be called ".vimrc" or "_vimrc" and
  36. is located in your home directory.
  37.    If you don't have a vimrc file yet, see |vimrc| to find out where you can
  38. create a vimrc file.  Also, the ":version" command mentions the name of the
  39. "user vimrc file" Vim looks for.
  40.  
  41. For Unix this file is always used: >
  42.  
  43.     ~/.vimrc
  44.  
  45. For MS-DOS and MS-Windows it is mostly one of these: >
  46.  
  47.     $HOME/_vimrc
  48.     $VIM/_vimrc
  49.  
  50. The vimrc file can contain all the commands that you type after a colon.  The
  51. most simple ones are for setting options.  For example, if you want Vim to
  52. always start with the 'incsearch' option on, add this line you your vimrc
  53. file: >
  54.  
  55.     set incsearch
  56.  
  57. For this new line to take effect you need to exit Vim and start it again.
  58. Later you will learn how to do this without exiting Vim.
  59.  
  60. This chapter only explains the most basic items.  For more information on how
  61. to write a Vim script file: |usr_41.txt|.
  62.  
  63. ==============================================================================
  64. *05.2*    The example vimrc file explained        *vimrc_example.vim*
  65.  
  66. In the first chapter was explained how the example vimrc (included in the
  67. Vim distribution) file can be used to make Vim startup in not-compatible mode
  68. (see |not-compatible|).  The file can be found here:
  69.  
  70.     $VIMRUNTIME/vimrc_example.vim ~
  71.  
  72. In this section we will explain the various commands used in this file.  This
  73. will give you hints about how to set up your own preferences.  Not everything
  74. will be explained though.  Use the ":help" command to find out more.
  75.  
  76. >
  77.     set nocompatible
  78.  
  79. As mentioned in the first chapter, these manuals explain Vim working in an
  80. improved way, thus not completely Vi compatible.  Setting the 'compatible'
  81. option off, thus 'nocompatible' takes care of this.
  82.  
  83. >
  84.     set backspace=indent,eol,start
  85.  
  86. This specifies where in Insert mode the <BS> is allowed to delete the
  87. character in front of the cursor.  The three items, separated by commas, tell
  88. Vim to delete the white space at the start of the line, a line break and the
  89. character before where Insert mode started.
  90. >
  91.  
  92.     set autoindent
  93.  
  94. This makes Vim use the indent of the previous line for a newly created line.
  95. Thus there is the same amount of white space before the new line.  For example
  96. when pressing <Enter> in Insert mode, and when using the "o" command to open a
  97. new line.
  98. >
  99.  
  100.     if has("vms")
  101.       set nobackup
  102.     else
  103.       set backup
  104.     endif
  105.  
  106. This tells Vim to keep a backup copy of a file when overwriting it.  But not
  107. on the VMS system, since it keeps old versions of files already.  The backup
  108. file will have the same name as the original file with "~" added.  See |07.4|
  109. >
  110.  
  111.     set history=50
  112.  
  113. Keep 50 commands and 50 search patterns in the history.  Use another number if
  114. you want to remember less or more lines.
  115. >
  116.  
  117.     set ruler
  118.  
  119. Always display the current cursor position in the lower right corner of the
  120. Vim window.
  121.  
  122. >
  123.     set showcmd
  124.  
  125. Display an incomplete command in the lower right corner of the Vim window,
  126. left of the ruler.  For example, when you type "2f", Vim is waiting for you to
  127. type the character to find and "2f" is displayed.  When you press "w" next,
  128. the "2fw" command is executed and the displayed "2f" is removed.
  129.  
  130.     +-------------------------------------------------+
  131.     |text in the Vim window                  |
  132.     |~                          |
  133.     |~                          |
  134.     |-- VISUAL --            2f     43,8   17% |
  135.     +-------------------------------------------------+
  136.      ^^^^^^^^^^^              ^^^^^^^^ ^^^^^^^^^^
  137.       'showmode'             'showcmd'    'ruler'
  138.  
  139. >
  140.     set incsearch
  141.  
  142. Display the match for a search pattern when halfway typing it.
  143.  
  144. >
  145.     map Q gq
  146.  
  147. This defines a key mapping.  More about that in the next section.  This
  148. defines the "Q" command to do formatting with the "gq" operator.  This is how
  149. it worked before Vim 5.0.  Otherwise the "Q" command starts Ex mode, but you
  150. will not need it.
  151.  
  152. >
  153.     vnoremap p <Esc>:let current_reg = @"<CR>gvs<C-R>=current_reg<CR><Esc>
  154.  
  155. This is a complicated mapping.  It will not be explained how it works here.
  156. What it does is to make "p" in Visual mode overwrite the selected text with
  157. the previously yanked text.  You can see that mappings can be used to do quite
  158. complicated things.  Still, it is just a sequence of commands that are
  159. executed like you typed them.
  160.  
  161. >
  162.     if &t_Co > 2 || has("gui_running")
  163.       syntax on
  164.       set hlsearch
  165.     endif
  166.  
  167. This switches on syntax highlighting, but only if colors are available.  And
  168. the 'hlsearch' option tells Vim to highlight matches with the last used search
  169. pattern.  The "if" command is very useful to set options only when some
  170. condition is met.  More about that in |usr_41.txt|.
  171.  
  172.                             *vimrc-filetype*  >
  173.     filetype plugin indent on
  174.  
  175. This switches on three very clever mechanisms:
  176. 1. Filetype detection.
  177.    Whenever you start editing a file, Vim will try to figure out what kind of
  178.    file this is.  When you edit "main.c", Vim will see the ".c" extension and
  179.    recognize this as a "c" filetype.  When you edit a file that starts with
  180.    "#!/bin/sh", Vim will recognize it as a "sh" filetype.
  181.    The filetype detection is used for syntax highlighting and the other two
  182.    items below.
  183.    See |filetypes|.
  184.  
  185. 2. Using filetype plugin files
  186.    Many different filetypes are edited with different options.  For example,
  187.    when you edit a "c" file, it's very useful to set the 'cindent' option to
  188.    automatically indent the lines.  These commonly useful option settings are
  189.    included with Vim in filetype plugins.  You can also add your own, see
  190.    |write-filetype-plugin|.
  191.  
  192. 3. Using indent files
  193.    When editing programs, the indent of a line can often be computed
  194.    automatically.  Vim comes with these indent rules for a number of
  195.    filetypes.  See |:filetype-indent-on| and 'indentexpr'.
  196.  
  197. >
  198.     autocmd FileType text setlocal textwidth=78
  199.  
  200. This makes Vim break text to avoid lines getting longer than 78 characters.
  201. But only for files that have been detected to be plain text.  There are
  202. actually two parts here.  "autocmd FileType text" is an autocommand.  This
  203. defines that when the file type is set to "text" the following command is
  204. automatically executed.  "setlocal textwidth=78" sets the 'textwidth' option
  205. to 78, but only locally in one file.
  206. >
  207.  
  208.     autocmd BufReadPost *
  209.         \ if line("'\"") > 0 && line("'\"") <= line("$") |
  210.         \   exe "normal g`\"" |
  211.         \ endif
  212.  
  213. Another autocommand.  This time it is used after reading any file.  The
  214. complicated stuff after it checks if the '" mark is defined, and jumps to it
  215. if so.  The backslash at the start of a line is used to continue the command
  216. from the previous line.  That avoids a line getting very long.
  217. See |line-continuation|.  This only works in a Vim script file, not when
  218. typing commands at the command-line.
  219.  
  220. ==============================================================================
  221. *05.3*    Simple mappings
  222.  
  223. A mapping enables you to bind a set of Vim commands to a single key.  Suppose,
  224. for example, that you need to surround certain words with curly braces.  In
  225. other words, you need to change a word such as "amount" into "{amount}".  With
  226. the :map command, you can tell Vim that the F5 key does this job.  The command
  227. is as follows: >
  228.  
  229.     :map <F5> i{<Esc>ea}<Esc>
  230. <
  231.     Note:
  232.     When entering this command, you must enter <F5> by typing four
  233.     characters.  Similarly, <Esc> is not entered by pressing the <Esc>
  234.     key, but by typing five characters.  Watch out for this difference
  235.     when reading the manual!
  236.  
  237. Let's break this down:
  238.     <F5>    The F5 function key.  This is the trigger key that causes the
  239.         command to be executed as the key is pressed.
  240.  
  241.     i{<Esc>    Insert the { character.  The <Esc> key ends Insert mode.
  242.  
  243.     e        Move to the end of the word.
  244.  
  245.     a}<Esc>    Append the } to the word.
  246.  
  247. After you execute the ":map" command, all you have to do to put {} around a
  248. word is to put the cursor on the first character and press F5.
  249.  
  250. In this example, the trigger is a single key; it can be any string.  But when
  251. you use an existing Vim command, that command will no longer be available.
  252. You better avoid that.
  253.    One key that can be used with mappings is the backslash.  Since you
  254. probably want to define more than one mapping, add another character.  You
  255. could map "\p" to add parens around a word, and "\c" to add curly braces, for
  256. example: >
  257.  
  258.     :map \p i(<Esc>ea)<Esc>
  259.     :map \c i{<Esc>ea}<Esc>
  260.  
  261. You need to type the \ and the p quickly after another, so that Vim knows they
  262. belong together.
  263.  
  264. The ":map" command (with no arguments) lists out your current mappings.  At
  265. least the ones for Normal mode.  More about mappings in section |40.1|.
  266.  
  267. ==============================================================================
  268. *05.4*    Adding a plugin                    *add-plugin* *plugin*
  269.  
  270. Vim's functionality can be extended by adding plugins.  A plugin is nothing
  271. more than a Vim script file that is loaded automatically when Vim starts.  You
  272. can add a plugin very easily by dropping it in your plugin directory.
  273. {not available when Vim was compiled without the |+eval| feature}
  274.  
  275. There are two types of plugins:
  276.  
  277.     global plugin: Used for all kinds of files
  278.   filetype plugin: Only used for a specific type of file
  279.  
  280. The global plugins will be discussed first, then the filetype ones
  281. |add-filetype-plugin|.
  282.  
  283.  
  284. GLOBAL PLUGINS                        *standard-plugin*
  285.  
  286. When you start Vim, it will automatically load a number of global plugins.
  287. You don't have to do anything for this.  They add functionality that most
  288. people will want to use, but which was implemented as a Vim script instead of
  289. being compiled into Vim.  You can find them listed in the help index
  290. |standard-plugin-list|.  Also see |load-plugins|.
  291.  
  292.                             *add-global-plugin*
  293. You can add a global plugin to add functionality that will always be present
  294. when you use Vim.  There are only two steps for adding a global plugin:
  295. 1. Get a copy of the plugin.
  296. 2. Drop it in the right directory.
  297.  
  298.  
  299. GETTING A GLOBAL PLUGIN
  300.  
  301. Where can you find plugins?
  302. - Some come with Vim.  You can find them in the directory $VIMRUNTIME/macros
  303.   and its sub-directories.
  304. - Download from the net, check out http://vim.sf.net.
  305. - They are sometimes posted in a Vim |maillist|.
  306. - You could write one yourself, see |write-plugin|.
  307.  
  308.  
  309. USING A GLOBAL PLUGIN
  310.  
  311. First read the text in the plugin itself to check for any special conditions.
  312. Then copy the file to your plugin directory:
  313.  
  314.     system        plugin directory ~
  315.     Unix        ~/.vim/plugin/
  316.     PC and OS/2    $HOME/vimfiles/plugin or $VIM/vimfiles/plugin
  317.     Amiga        s:vimfiles/plugin
  318.     Macintosh    $VIM:vimfiles:plugin
  319.     RISC-OS        Choices:vimfiles.plugin
  320.  
  321. Example for Unix (assuming you didn't have a plugin directory yet): >
  322.  
  323.     mkdir ~/.vim
  324.     mkdir ~/.vim/plugin
  325.     cp /usr/local/share/vim/vim60/macros/justify.vim ~/.vim/plugin
  326.  
  327. That's all!  Now you can use the commands defined in this plugin to justify
  328. text.
  329.  
  330.  
  331. FILETYPE PLUGINS            *add-filetype-plugin* *ftplugins*
  332.  
  333. The Vim distribution comes with a set of plugins for different filetypes that
  334. you can start using with this command: >
  335.  
  336.     :filetype plugin on
  337.  
  338. That's all!  See |vimrc-filetype|.
  339.  
  340. If you are missing a plugin for a filetype you are using, or you found a
  341. better one, you can add it.  There are two steps for adding a filetype plugin:
  342. 1. Get a copy of the plugin.
  343. 2. Drop it in the right directory.
  344.  
  345.  
  346. GETTING A FILETYPE PLUGIN
  347.  
  348. You can find them in the same places as the global plugins.  Watch out if the
  349. type of file is mentioned, then you know if the plugin is a global or a
  350. filetype one.  The scripts in $VIMRUNTIME/macros are global ones, the filetype
  351. plugins are in $VIMRUNTIME/ftplugin.
  352.  
  353.  
  354. USING A FILETYPE PLUGIN
  355.  
  356. You can add a filetype plugins by dropping it in the right directory.  The
  357. name of this directory is in the same directory mentioned above for global
  358. plugins, but the last part is "ftplugin".  Suppose you have found a plugin for
  359. the "stuff" filetype, and you are on Unix.  Then you can move this file to the
  360. ftplugin directory: >
  361.  
  362.     mv thefile ~/.vim/ftplugin/stuff.vim
  363.  
  364. If that file already exists you already have a plugin for "stuff".  You might
  365. want to check if the existing plugin doesn't conflict with the one you are
  366. adding.  If it's OK, you can give the new one another name: >
  367.  
  368.     mv thefile ~/.vim/ftplugin/stuff_too.vim
  369.  
  370. The underscore is used to separate the name of the filetype from the rest,
  371. which can be anything.  If you would use "otherstuff.vim" it wouldn't work, it
  372. would be loaded for the "otherstuff" filetype.
  373.  
  374. On MS-DOS you cannot use long filenames.  You would run into trouble if you
  375. add a second plugin and the filetype has more than six characters.  You can
  376. use an extra directory to get around this: >
  377.  
  378.     mkdir $VIM/vimfiles/ftplugin/fortran
  379.     copy thefile $VIM/vimfiles/ftplugin/fortran/too.vim
  380.  
  381. The generic names for the filetype plugins are: >
  382.  
  383.     ftplugin/<filetype>.vim
  384.     ftplugin/<filetype>_<name>.vim
  385.     ftplugin/<filetype>/<name>.vim
  386.  
  387. Here "<name>" can be any name that you prefer.
  388. Examples for the "stuff" filetype on Unix: >
  389.  
  390.     ~/.vim/ftplugin/stuff.vim
  391.     ~/.vim/ftplugin/stuff_def.vim
  392.     ~/.vim/ftplugin/stuff/header.vim
  393.  
  394. The <filetype> part is the name of the filetype the plugin is to be used for.
  395. Only files of this filetype will use the settings from the plugin.  The <name>
  396. part of the plugin file doesn't matter, you can use it to have several plugins
  397. for the same filetype.  Note that it must end in ".vim".
  398.  
  399.  
  400. Further reading:
  401. |filetype-plugins|    Documentation for the filetype plugins and information
  402.             about how to avoid that mappings cause problems.
  403. |load-plugins|        When the global plugins are loaded during startup.
  404. |ftplugin-overrule|    Overruling the settings from a global plugin.
  405. |write-plugin|        How to write a plugin script.
  406. |plugin-details|    For more information about using plugins or when your
  407.             plugin doesn't work.
  408.  
  409. ==============================================================================
  410. *05.5*    Adding a help file            *add-local-help*
  411.  
  412. If you are lucky, the plugin you installed also comes with a help file.  We
  413. will explain how to install the help file, so that you can easily find help
  414. for your new plugin.
  415.    Let us use the "matchit.vim" plugin as an example (it is included with
  416. Vim).  This plugin makes the "%" command jump to matching HTML tags,
  417. if/else/endif in Vim scripts, etc.  Very useful, although it's not backwards
  418. compatible (that's why it is not enabled by default).
  419.    This plugin comes with documentation: "matchit.txt".  Let's first copy the
  420. plugin to the right directory.  This time we will do it from inside Vim, so
  421. that we can use $VIMRUNTIME.  (You may skip some of the "mkdir" commands if
  422. you already have the directory.) >
  423.  
  424.     :!mkdir ~/.vim
  425.     :!mkdir ~/.vim/plugin
  426.     :!cp $VIMRUNTIME/macros/matchit.vim ~/.vim/plugin
  427.  
  428. Now create a "doc" directory in one of the directories in 'runtimepath'. >
  429.  
  430.     :!mkdir ~/.vim/doc
  431.  
  432. Copy the help file to the "doc" directory. >
  433.  
  434.     :!cp $VIMRUNTIME/macros/matchit.txt ~/.vim/doc
  435.  
  436. Now comes the trick, which allows you to jump to the subjects in the new help
  437. file: Generate the local tags file with the |:helptags| command. >
  438.  
  439.     :helptags ~/.vim/doc
  440.  
  441. Now you can use the >
  442.  
  443.     :help g%
  444.  
  445. command to find help for "g%" in the help file you just added.  You can see an
  446. entry for the local help file when you do: >
  447.  
  448.     :help
  449.  
  450. Go down to the "LOCAL ADDITIONS" section.  The title lines from the local help
  451. files are automagically added to this section.  There you can see which local
  452. help files have been added and jump to them through the tag.
  453.  
  454. For writing a local help file, see |write-local-help|.
  455.  
  456. ==============================================================================
  457. *05.6*    The option window
  458.  
  459. If you are looking for an option that does what you want, you can search in
  460. the help files here: |options|.  Another way is by using this command: >
  461.  
  462.     :options
  463.  
  464. This opens a new window, with a list of options with a one-line explanation.
  465. The options are grouped by subject.  Move the cursor to a subject and press
  466. <Enter> to jump there.  Press <Enter> again to jump back.  Or use CTRL-O.
  467.  
  468. You can change the value of an option.  For example, move to the "displaying
  469. text" subject.  Then move the cursor down to this line: >
  470.  
  471.     set wrap    nowrap
  472.  
  473. When you hit <Enter>, the line will change to: >
  474.  
  475.     set nowrap    wrap
  476.  
  477. The option has now been switched off.
  478.  
  479. Just above this line is a short description of the 'wrap' option.  Move the
  480. cursor one line up to place it in this line.  Now hit <Enter> and you jump to
  481. the full help on the 'wrap' option.  Use CTRL-O to jump back.
  482.  
  483. For options that take a number or string argument you can edit the value.
  484. Then press <Enter> to apply the new value.  For example, move the cursor a few
  485. lines up to this line: >
  486.  
  487.     set so=0
  488.  
  489. Position the cursor on the zero with "$".  Change it into a five with "r5".
  490. Then press <Enter> to apply the new value.  When you now move the cursor
  491. around you will notice that the text starts scrolling before you reach the
  492. border.  This is what the 'scrolloff' option does, it specifies an offset
  493. from the window border where scrolling starts.
  494.  
  495. ==============================================================================
  496. *05.7*    Often used options
  497.  
  498. There are an awful lot of options.  Most of them you will hardly ever use.
  499. Some of the more useful ones will be mentioned here.  Don't forget you can
  500. find more help on these options with the ":help" command, with single quotes
  501. before and after the option name.  For example: >
  502.  
  503.     :help 'wrap'
  504.  
  505. In case you have messed up an option value, you can set it back to the
  506. default by putting a ampersand (&) after the option name.  Example: >
  507.  
  508.     :set iskeyword&
  509.  
  510.  
  511. NOT WRAPPING LINES
  512.  
  513. Vim normally wraps long lines, so that you can see all of the text.  Sometimes
  514. it's better to let the text continue right of the window.  Then you need to
  515. scroll the text left-right to see all of a long line.  Switch wrapping of with
  516. this command: >
  517.  
  518.     :set nowrap
  519.  
  520. Vim will automatically scroll the text when you move to text that is not
  521. displayed.  To see a context of ten characters, do this: >
  522.  
  523.     :set sidescroll=10
  524.  
  525. This doesn't change the text in the file, only the way it is displayed.
  526.  
  527.  
  528. WRAPPING MOVEMENT COMMANDS
  529.  
  530. Most commands for moving around will stop moving at the start and end of a
  531. line.  You can change that with the 'whichwrap' option.  This sets it to the
  532. default value: >
  533.  
  534.     :set whichwrap=b,s
  535.  
  536. This allows the <BS> key, when used in the first position of a line, to move
  537. the cursor to the end of the previous line.  And the <Space> key moves from
  538. the end of a line to the start of the next one.
  539.  
  540. To allow the cursor keys <Left> and <Right> to also wrap, use this command: >
  541.  
  542.     :set whichwrap=b,s,<,>
  543.  
  544. This is still only for Normal mode.  To let <Left> and <Right> do this in
  545. Insert mode as well: >
  546.  
  547.     :set whichwrap=b,s,<,>,[,]
  548.  
  549. There are a few other flags that can be added, see 'whichwrap'.
  550.  
  551.  
  552. VIEWING TABS
  553.  
  554. When there are tabs in a file, you cannot see where they are.  To make them
  555. visible: >
  556.  
  557.     :set list
  558.  
  559. Now every Tab is displayed as ^I.  And a $ is displayed at the end of each
  560. line, so that you can spot trailing spaces that would otherwise go unnoticed.
  561.    A disadvantage is that this looks ugly when there are many Tabs in a file.
  562. If you have a color terminal, or are using the GUI, Vim can show the spaces
  563. and tabs as highlighted characters.  Use the 'listchars' option: >
  564.  
  565.     :set listchars=tab:>-,trail:-
  566.  
  567. Now every tab will be displayed as ">---" and trailing white space as "-".
  568. Looks a lot better, doesn't it?
  569.  
  570.  
  571. KEYWORDS
  572.  
  573. The 'iskeyword' option specifies which characters can appear in a word: >
  574.  
  575.     :set iskeyword
  576. <      iskeyword=@,48-57,_,192-255 >
  577.  
  578. The "@" stands for all alphabetic letters.  "48-57" stands for ASCII
  579. characters 48 to 57, which are the numbers 0 to 9.  "192-255" are the
  580. printable latin characters.
  581.    Sometimes you will want to include a dash in keywords, so that commands
  582. like "w" consider "upper-case" to be one word.  You can do it like this: >
  583.  
  584.     :set iskeyword+=-
  585.     :set iskeyword
  586. <      iskeyword=@,48-57,_,192-255,-
  587.  
  588. If you look at the new value, you will see that Vim has added a comma for you.
  589.    To remove a character use "-=".  For example, to remove the underscore: >
  590.  
  591.     :set iskeyword-=_
  592.     :set iskeyword
  593. <      iskeyword=@,48-57,192-255,-
  594.  
  595. This time a comma is automatically deleted.
  596.  
  597.  
  598. ROOM FOR MESSAGES
  599.  
  600. When Vim starts there is one line at the bottom that is used for messages.
  601. When a message is long, it is either truncated, thus you can only see part of
  602. it, or the text scrolls and you have to press <Enter> to continue.
  603.    You can set the 'cmdheight' option to the number of lines used for
  604. messages.  Example: >
  605.  
  606.     :set cmdheight=3
  607.  
  608. This does mean there is less room to edit text, thus it's a compromise.
  609.  
  610. ==============================================================================
  611.  
  612. Next chapter: |usr_06.txt|  Using syntax highlighting
  613.  
  614. Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:
  615.